package com.qqtech.qquan.pub.service;

import com.qqtech.core.frame.model.Result;
import com.qqtech.core.frame.service.BaseService;
import com.qqtech.qquan.pub.model.PubUpgrade;
import com.qqtech.qquan.pub.model.PubUpgradeVo;

public interface PubUpgradeService extends BaseService<PubUpgrade> {

	/**
	 * 获取最新的有效的更新日志
	 * 
	 * @return
	 */
	PubUpgrade getCurrentUpgrade();

	/**
	 * 获取缓存中的app更新配置参数
	 * 
	 * @return
	 */
	PubUpgrade getCachePubUpgrade();

	/**
	 * 检查当前版本是否可以更新，可以则返回版本更新的所有参数
	 * 
	 * @param contentVer
	 *            app的内容版本
	 * @param nativeVer
	 *            app的原生版本
	 * @param platform
	 *            app所属平台(ios和android)
	 * @return
	 */
	Result checkUpgrade(String contentVer, String nativeVer, int platform);

	/**
	 * 从参数表获取数据，并填充到PubUpgrade返回
	 * 
	 * @return
	 */
	PubUpgrade getFromParam();

	/**
	 * 发布新版本，把数据保存到数据库
	 * 
	 * @param pubUpgrade
	 * @return
	 */
	Result publishNewVersion(PubUpgrade pubUpgrade);

	/**
	 * 根据客户端不同平台(ios、android)获取对应的升级参数
	 * 
	 * @param platform
	 *            平台:1-android;2-ios
	 * @return
	 */
	PubUpgradeVo getUpgradeByPlatform(int platform);
}